package fr.nts.framework.front.security.service;

import fr.nts.framework.database.jpa.model.security.SecurityUser;
import fr.nts.framework.front.security.service.exception.BadAuthentificationException;
import fr.nts.framework.front.security.service.exception.BadLoginException;

/**
 * Service lié à la manipulation des utilisateurs d'application NTS
 * 
 * @author sco
 * @version 1.0.0
 */
public interface SimpleUserService{

	/**
	 * Récupère un utilisateur NTS à partir de son login.
	 * 
	 * @param username Le login de l'utilisateur NTS à charger
	 * @return L'utilisateur NTS trouvé
	 * @throws BadLoginException Erreur d'authentification
	 */
	public SecurityUser load(final String username) throws BadLoginException;
	
	
	/**
	 * Tente une authentification d'un utilisateur NTS à partir de son login/password.
	 * 
	 * @param username Le login de l'utilisateur NTS à charger
	 * @return L'utilisateur NTS trouvé si l'authentification est réussi
	 * @throws BadAuthentificationException Erreur d'authentification
	 */
	public SecurityUser authentification(final String username,
			                             final String password) throws BadAuthentificationException;
}